namespace CSharpPro._1016;

public class Demo
{
    public void TestPrint1()
    {
        int x, y, z;
        // 1. 接收用户输入的三个整数
        Console.Write("请输入第一个整数x：");
        int.TryParse(Console.ReadLine(), out x);
        Console.Write("请输入第二个整数y：");
        int.TryParse(Console.ReadLine(), out y);
        Console.Write("请输入第三个整数z：");
        int.TryParse(Console.ReadLine(), out z);

        // 2. 定义临时变量用于交换数值，实现排序
        int temp;
        if (x > y)
        {
            temp = x;
            x = y;
            y = temp;
        }
        if (x > z)
        {
            temp = x;
            x = z;
            z = temp;
        }
        if (y > z)
        {
            temp = y;
            y = z;
            z = temp;
        }

        // 3. 输出排序后的结果
        Console.WriteLine($"从小到大排序结果：{x}, {y}, {z}");
    }
    public void TestPrint2()
    {
        int sum = 0;
        for (int i = 1; i <= 100; i++)
        {
            // 判断是否是7的倍数 或者 包含数字7
            bool isMultipleOf7 = i % 7 == 0;
            bool contains7 = i.ToString().Contains("7");
            if (!isMultipleOf7 && !contains7)
            {
                Console.Write(i + " ");
                sum += i;
            }
        }
        Console.WriteLine($"\n1-100之间所有不是7的倍数和不包含7的数字之和为：{sum}");
    }

    public void TestPrint3()
    {
        for (int i = 1; i <= 9; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write($"{j}×{i}={i * j}\t");
            }
            Console.WriteLine();
        }
    }

    public void TestPrint4()
    {
        for (int num = 2; num < 1000; num++)
        {
            int sum = 0;
            for (int i = 1; i < num; i++)
            {
                if (num % i == 0)
                {
                    sum += i;
                }
            }
            if (sum == num)
            {
                Console.WriteLine(num);
            }
        }
    }

    public void TestPrint5()
    {
        Console.Write("请输入一个正整数：");
        string input = Console.ReadLine();
        int num;
        if (int.TryParse(input, out num) && num > 0)
        {
            // 1. 判断是几位数
            int digitCount = input.Length;
            Console.WriteLine($"它是{digitCount}位数");

            // 2. 逆序打印各位数字
            Console.Write("逆序各位数字：");
            for (int i = input.Length - 1; i >= 0; i--)
            {
                Console.Write(input[i] + " ");
            }
        }
        else
        {
            Console.WriteLine("输入无效，请输入正整数！");
        }
        Console.WriteLine();
    }

    public void TestPrint6()
    {
        Console.Write("请输入菱形的行数（需为正奇数）：");
        int rows;
        while (!int.TryParse(Console.ReadLine(), out rows) || rows <= 0 || rows % 2 == 0)
        {
            Console.WriteLine("输入无效，请输入正奇数！");
            Console.Write("请重新输入菱形的行数（需为正奇数）：");
        }

        int mid = rows / 2 + 1;
        // 打印上半部分菱形
        for (int i = 1; i <= mid; i++)
        {
            // 打印空格
            for (int j = 1; j <= mid - i; j++)
            {
                Console.Write(" ");
            }
            // 打印*
            for (int k = 1; k <= 2 * i - 1; k++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
        // 打印下半部分菱形
        for (int i = mid - 1; i >= 1; i--)
        {
            // 打印空格
            for (int j = 1; j <= mid - i; j++)
            {
                Console.Write(" ");
            }
            // 打印*
            for (int k = 1; k <= 2 * i - 1; k++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
    }
}